package py.com.erpone.session.dm.list;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.inject.Named;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import py.com.erpone.entity.almacen.Lote;
import py.com.erpone.entity.dm.Presentacion;
import py.com.erpone.entity.dm.SolicitudCotizacion;
import py.com.erpone.entity.dm.SolicitudPedido;
import py.com.erpone.entity.dm.SolicitudPedido;
import py.com.erpone.util.LocaleSelector;



@Stateless
@LocalBean
@Named
public class SolicitudCotizacionesList {
	
	@PersistenceContext
	private EntityManager em;
	LocaleSelector localeSelector;
	
	@SuppressWarnings("unchecked")
    public List<SolicitudCotizacion> findAll(){
		List<SolicitudCotizacion> result=(List<SolicitudCotizacion>)em.createNamedQuery("solicitudCotizacion.all").getResultList();
		for (SolicitudCotizacion sc : result) {
			if(sc !=null && !sc.getSituacion().trim().isEmpty()){
				sc.setSituacionExtenso(this.getSituacionExtenso(sc.getSituacion(), sc.getListSituacion()));
			}
		}
		return result;
	}
	public String getSituacionExtenso(String key, HashMap<String, String> listSituacion) {
		localeSelector = new LocaleSelector();
		String retorno = key;
		Map<String, String> map = listSituacion;
		for (Map.Entry<String, String> entry : map.entrySet()){
			if(key.equals(entry.getValue())){
				return localeSelector.getMensaje("situacion."+entry.getKey());
			}
		}		
		return retorno;
	}
	@SuppressWarnings("unchecked")
	public List<SolicitudCotizacion> findAllAdjudicados(){
		List<SolicitudCotizacion> result=(List<SolicitudCotizacion>)em.createNamedQuery("solicitudCotizacionAdjudicados.all").getResultList();
		for (SolicitudCotizacion sc : result) {
			if(sc !=null && !sc.getSituacion().trim().isEmpty()){
				sc.setSituacionExtenso(this.getSituacionExtenso(sc.getSituacion(), sc.getListSituacion()));
			}
		}
		return result;
	}	
	

	public SolicitudCotizacion findById(Long id){
		return em.find(SolicitudCotizacion.class, id);
	}
	
}
